home *** CD-ROM | disk | FTP | other *** search
- /*
- File: AtalkSampleUtils.cp
-
- Contains: Some utility routines used by the AppleTalk sample programs
-
- Copyright: © 1993-1995 by Apple Computer, Inc., all rights reserved.
-
- */
-
- #ifndef __ATALKSAMPLEUTILS__
- #include "ATalkSampleUtils.h"
- #endif
- #ifndef __OPENTPTAPPLETALK__
- #include "OpenTptAppleTalk.h"
- #endif
- #include <Menus.h>
- #include <Devices.h>
- #include <Events.h>
- #ifndef __STDIO__
- #include <stdio.h>
- #endif
-
- /*******************************************************************************
- ** ShowEndpointInfo
- **
- ********************************************************************************/
-
- static void ShowSize(char* format, SInt32 size)
- {
- if ( size == T_INFINITE )
- fprintf(stderr, "%sT_INFINITE\n", format);
- else if ( size == T_INVALID )
- fprintf(stderr, "%sT_INVALID\n", format);
- else
- fprintf(stderr, "%s%ld\n", format, size);
- }
-
- void ShowEndpointInfo(EndpointRef ep)
- {
- TEndpointInfo info;
- OSStatus err;
- SInt32 flags;
- char* type;
- Boolean ndComma;
-
- err = OTGetEndpointInfo(ep, &info);
- fprintf(stderr, " TEndpointInfo:\n");
- if ( err != kOTNoError )
- {
- fprintf(stderr, " ERROR! = %d\n", err);
- }
- else
- {
- ShowSize(" addr = ", info.addr);
- ShowSize(" options = ", info.options);
- ShowSize(" tsdu = ", info.tsdu);
- ShowSize(" etsdu = ", info.etsdu);
- ShowSize(" connect = ", info.connect);
- ShowSize(" discon = ", info.discon);
-
- fprintf(stderr, " servtype = ");
- switch ( info.servtype )
- {
- case T_COTS: type = "T_COTS"; break;
- case T_COTS_ORD: type = "T_COTS_ORD"; break;
- case T_CLTS: type = "T_CLTS"; break;
- case T_TRANS: type = "T_TRANS"; break;
- case T_TRANS_ORD: type = "T_TRANS_ORD"; break;
- case T_TRANS_CLTS: type = "T_TRANS_CLTS"; break;
- default: type = NULL;
- }
- if ( type != NULL )
- fprintf(stderr, "%s\n", type);
- else
- fprintf(stderr, "%lu\n", info.servtype);
-
- flags = info.flags;
- fprintf(stderr, " flags = ", info.flags);
- ndComma = false;
- if ( flags & T_SENDZERO )
- {
- flags &= ~T_SENDZERO;
- fprintf(stderr, "T_SENDZERO");
- ndComma = true;
- }
- if ( flags & T_XPG4_1 )
- {
- flags &= ~T_XPG4_1;
- if ( ndComma )
- fprintf(stderr, ", ");
- ndComma = true;
- fprintf(stderr, "T_XPG4_1");
- }
- if ( flags & T_CAN_RESOLVE_ADDR )
- {
- flags &= ~T_CAN_RESOLVE_ADDR;
- if ( ndComma )
- fprintf(stderr, ", ");
- ndComma = true;
- fprintf(stderr, "T_CAN_RESOLVE_ADDR");
- }
- if ( flags & T_CAN_SUPPLY_MIB )
- {
- flags &= ~T_CAN_SUPPLY_MIB;
- if ( ndComma )
- fprintf(stderr, ", ");
- ndComma = true;
- fprintf(stderr, "T_CAN_SUPPLY_MIB");
- }
- if ( flags != 0 )
- {
- if ( ndComma )
- fprintf(stderr, ", ");
- fprintf(stderr, "%08lX", flags);
-
- }
- fprintf(stderr, "\n");
- }
- }
-
- /*******************************************************************************
- ** ShowEndpointState
- ********************************************************************************/
-
- void ShowEndpointState(EndpointRef ep, char* prefixString)
- {
- char* strPtr;
- OTResult state;
-
- state = OTGetEndpointState(ep);
-
- fprintf(stderr, "%sState = %d, ", prefixString, state);
- switch ( state )
- {
- case T_UNINIT:
- strPtr = "T_UNINIT";
- break;
- case T_UNBND:
- strPtr = "T_UNBND";
- break;
- case T_IDLE:
- strPtr = "T_IDLE";
- break;
- case T_OUTCON:
- strPtr = "T_OUTCON";
- break;
- case T_INCON:
- strPtr = "T_INCON";
- break;
- case T_DATAXFER:
- strPtr = "T_DATAXFER";
- break;
- case T_OUTREL:
- strPtr = "T_OUTREL";
- break;
- case T_INREL:
- strPtr = "T_INREL";
- break;
- // case T_INFLUX:
- // strPtr = "T_INFLUX";
- // break;
- default:
- strPtr = "Unknown";
- }
- fprintf(stderr,"%s\n", strPtr);
- }
-
- /*******************************************************************************
- ** ShowFullEndpointData
- **
- ********************************************************************************/
-
- void ShowFullEndpointData(EndpointRef ep)
- {
- fprintf(stderr, "FULL ENDPOINT INFO FOR ENDPOINT AT %08lX\n", ep);
-
- fprintf(stderr, " Mode = %s\n", (OTIsSynchronous(ep) ? "Synchronous" : "Asynchronous"));
-
- ShowEndpointState(ep, " ");
-
- fprintf(stderr, " Look() = %d\n", OTLook(ep));
-
- ShowEndpointInfo(ep);
-
- fprintf(stderr, "");
- }
-
- /*******************************************************************************
- ** ShowDDPAddress -- print out an AppleTalk DDP address
- ********************************************************************************/
-
- void ShowDDPAddress(DDPAddress* addr)
- {
- if (addr->fAddressType == AF_ATALK_DDP ||
- addr->fAddressType == AF_ATALK_DDPNBP)
- {
- fprintf(stderr, "Net $%04X, Node $%02X, Socket $%02X, Type $%02X",
- addr->fNetwork, addr->fNodeID, addr->fSocket, addr->fDDPType);
- }
- else
- fprintf(stderr, "Not DDP Addr!");
- }
-
-